From 5d60c95d966b84f7b7582f1de4bc48e282c44219 Mon Sep 17 00:00:00 2001 From: Salvatore Bonaccorso Date: Mon, 28 Sep 2026 16:04:18 +0200 Subject: [PATCH] pcre2 (10.48-3.1) unstable; urgency=medium * Non-maintainer upload. * GHSA-r9hj-j2rw-4q3m: Fix large JIT stack allocation (Closes: #1149217) * For release, revert platform-specific test case [dgit import package pcre2 10.48-3.1] --- debian/README.Debian | 12 + debian/README.source | 17 ++ debian/changelog | 370 ++++++++++++++++++++++++++ debian/control | 121 +++++++++ debian/copyright | 122 +++++++++ debian/gbp.conf | 8 + debian/libpcre2-16-0.install | 1 + debian/libpcre2-16-0.symbols | 3 + debian/libpcre2-32-0.install | 1 + debian/libpcre2-32-0.symbols | 3 + debian/libpcre2-8-0-udeb.install | 1 + debian/libpcre2-8-0.install | 1 + debian/libpcre2-8-0.symbols | 3 + debian/libpcre2-dev.install | 6 + debian/libpcre2-dev.lintian-overrides | 2 + debian/libpcre2-dev.manpages | 1 + debian/libpcre2-posix3.install | 1 + debian/libpcre2-posix3.symbols | 3 + debian/not-installed | 2 + debian/pcre2-utils.install | 4 + debian/rules | 32 +++ debian/source/format | 1 + debian/watch | 2 + pcre2-config.in | 21 -- src/pcre2_jit_compile.c | 21 +- 25 files changed, 736 insertions(+), 23 deletions(-) create mode 100644 debian/README.Debian create mode 100644 debian/README.source create mode 100644 debian/changelog create mode 100644 debian/control create mode 100644 debian/copyright create mode 100644 debian/gbp.conf create mode 100644 debian/libpcre2-16-0.install create mode 100644 debian/libpcre2-16-0.symbols create mode 100644 debian/libpcre2-32-0.install create mode 100644 debian/libpcre2-32-0.symbols create mode 100644 debian/libpcre2-8-0-udeb.install create mode 100644 debian/libpcre2-8-0.install create mode 100644 debian/libpcre2-8-0.symbols create mode 100644 debian/libpcre2-dev.install create mode 100644 debian/libpcre2-dev.lintian-overrides create mode 100644 debian/libpcre2-dev.manpages create mode 100644 debian/libpcre2-posix3.install create mode 100644 debian/libpcre2-posix3.symbols create mode 100644 debian/not-installed create mode 100644 debian/pcre2-utils.install create mode 100755 debian/rules create mode 100644 debian/source/format create mode 100644 debian/watch diff --git a/debian/README.Debian b/debian/README.Debian new file mode 100644 index 0000000..8c23e75 --- /dev/null +++ b/debian/README.Debian @@ -0,0 +1,12 @@ + PCRE2 for Debian + ---------------- + +This is PCRE2, the newer version of the PCRE (perl-compatible regular +expression) library. New projects should use this library in +preference the older PCRE library (which is, for historical reasons, +called pcre3 in Debian). + +The names of functions in libpcre2-posix are prefixed with PCRE2_, so +they don't clash with the names in libc. + + -- Matthew Vernon , Sun, 22 Nov 2015 16:07:27 +0000 diff --git a/debian/README.source b/debian/README.source new file mode 100644 index 0000000..193dde4 --- /dev/null +++ b/debian/README.source @@ -0,0 +1,17 @@ +The Debian packaging of pcre2 is maintained in git, using the merging +workflow described in dgit-maint-merge(7). There isn't a patch +queue that can be represented as a quilt series. + +A detailed breakdown of the changes is available from their +canonical representation - git commits in the packaging repository. +For example, to see the changes made by the Debian maintainer in +the first upload of upstream version 1.2.3, you could use: + + % git clone https://git.dgit.debian.org/pcre2 + % cd pcre2 + % git log --oneline 1.2.3..debian/1.2.3-1 -- . ':!debian' + +(If you have dgit, use `dgit clone pcre2`, rather than plain `git +clone`.) + + -- Matthew Vernon , Thu, 30 Nov 2017 14:16:33 +0000 diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..44acbd5 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,370 @@ +pcre2 (10.48-3.1) unstable; urgency=medium + + * Non-maintainer upload. + * GHSA-r9hj-j2rw-4q3m: Fix large JIT stack allocation (Closes: #1149217) + * For release, revert platform-specific test case + + -- Salvatore Bonaccorso Mon, 28 Sep 2026 16:04:18 +0200 + +pcre2 (10.48-3) unstable; urgency=medium + + * Bump dh compat to 13 (with some changes to rules file) + + -- Matthew Vernon Sat, 12 Sep 2026 15:45:16 +0100 + +pcre2 (10.48-2) unstable; urgency=high + + * remove unnecessary libS logic from pcre2-config.in (closes: #1146381) + + -- Matthew Vernon Tue, 01 Sep 2026 12:54:23 +0100 + +pcre2 (10.48-1) unstable; urgency=high + + * New upstream release + + -- Matthew Vernon Mon, 31 Aug 2026 21:37:22 +0100 + +pcre2 (10.48~rc1-1) experimental; urgency=medium + + * New upstream version (RC, for testing) + + -- Matthew Vernon Tue, 25 Aug 2026 16:30:31 +0100 + +pcre2 (10.47-2) experimental; urgency=medium + + * Undo symbol versioning at least for now (Closes: #1119027) + + -- Matthew Vernon Mon, 27 Oct 2025 11:06:43 +0000 + +pcre2 (10.47-1) experimental; urgency=medium + + * New upstream version (Closes: #902060) + + -- Matthew Vernon Tue, 21 Oct 2025 11:09:46 +0100 + +pcre2 (10.46-1) unstable; urgency=high + + * New upstream release to fix CVE-2025-58050 (Closes: #1112278) + + -- Matthew Vernon Thu, 28 Aug 2025 08:32:30 +0100 + +pcre2 (10.45-1) unstable; urgency=medium + + * New upstream release + + -- Matthew Vernon Wed, 05 Feb 2025 09:25:16 +0000 + +pcre2 (10.45~rc1-1) experimental; urgency=medium + + * Upstream RC1 for 10.45 version + + -- Matthew Vernon Thu, 23 Jan 2025 09:49:13 +0000 + +pcre2 (10.44-5) unstable; urgency=medium + + * Enable JIT on loong64 (Closes: #1089230) + + -- Matthew Vernon Sun, 08 Dec 2024 13:05:09 +0000 + +pcre2 (10.44-4) unstable; urgency=medium + + * Disable JIT on armel (it requires v7) (Closes: 1087563) + + -- Matthew Vernon Fri, 15 Nov 2024 15:53:09 +0000 + +pcre2 (10.44-3) unstable; urgency=medium + + * Use dh_autoreconf to fix FTBFS on mips64el (Closes: #1087562) + * Cherry-pick upstream commit to fix 32-bit issue (Closes: #1087564) + + -- Matthew Vernon Fri, 15 Nov 2024 14:47:09 +0000 + +pcre2 (10.44-2) unstable; urgency=medium + + * Upload to unstable (Closes: #1086187) + * Update homepage URL (Closes: #1073087) + * Mention libre2-dev in libpcre2-dev description (Closes: #1082901) + + -- Matthew Vernon Thu, 14 Nov 2024 11:40:06 +0000 + +pcre2 (10.44-1) experimental; urgency=medium + + * New upstream version + + -- Matthew Vernon Fri, 08 Nov 2024 16:27:46 +0000 + +pcre2 (10.43-1) experimental; urgency=medium + + * New upstream version + + -- Matthew Vernon Sat, 17 Feb 2024 10:22:28 +0000 + +pcre2 (10.42-4) unstable; urgency=medium + + * Build with JIT support on riscv64 (Closes: #1050819) + + -- Matthew Vernon Tue, 29 Aug 2023 18:23:44 +0100 + +pcre2 (10.42-3) unstable; urgency=medium + + * Specify source format 1.0 explicitly (Closes: #1049910) + + -- Matthew Vernon Mon, 21 Aug 2023 11:44:09 +0100 + +pcre2 (10.42-2) unstable; urgency=medium + + * disable JIT on sparc (Closes: #1034779) + + -- Matthew Vernon Tue, 11 Jul 2023 23:11:09 +0100 + +pcre2 (10.42-1) unstable; urgency=medium + + * New upstream version + + -- Matthew Vernon Sun, 01 Jan 2023 15:44:06 +0000 + +pcre2 (10.40-3) unstable; urgency=medium + + * Support the noudeb build profile (Helmut Grohne). (Closes: #1024941) + + -- Matthew Vernon Fri, 02 Dec 2022 17:40:13 +0000 + +pcre2 (10.40-2) unstable; urgency=low + + * Move to machine-readable copyright file (Bastian Germann) + * Remove filenamemangle from debian/watch (Bastian Germann) + + -- Matthew Vernon Sun, 23 Oct 2022 16:07:18 +0100 + +pcre2 (10.40-1) unstable; urgency=medium + + * New upstream release + * Update watch file to note new upstream repo location + + -- Matthew Vernon Mon, 25 Apr 2022 17:10:36 +0100 + +pcre2 (10.39-4) unstable; urgency=medium + + * Backport upstream Hurd build fix (Closes: #1009066) + + -- Matthew Vernon Mon, 11 Apr 2022 09:23:48 +0100 + +pcre2 (10.39-3) unstable; urgency=medium + + * Enable JIT on s390x (Closes: #999836) + * Re-enable JIT on MIPS (Closes: #892488) + + -- Matthew Vernon Wed, 17 Nov 2021 14:52:42 +0000 + +pcre2 (10.39-2) unstable; urgency=medium + + * Update long descriptions of runtime packages (Closes: #978013) + * Source-only upload (-1 was binary to get through NEW) + * Depend on libc-dev rather than libc6-dev (Closes: #989729) + + -- Matthew Vernon Mon, 08 Nov 2021 23:47:21 +0000 + +pcre2 (10.39-1) unstable; urgency=medium + + * New upstream release + * Update watch file to reflect new upstream home on github + * libpcre2-posix soname updated + + -- Matthew Vernon Sat, 06 Nov 2021 13:56:27 +0000 + +pcre2 (10.36-2) unstable; urgency=medium + + * Upload to unstable + + -- Matthew Vernon Sun, 13 Dec 2020 16:23:03 +0000 + +pcre2 (10.36-1) experimental; urgency=medium + + * New upstream version + * Fix watch file + + -- Matthew Vernon Mon, 07 Dec 2020 12:35:19 +0000 + +pcre2 (10.35-2) unstable; urgency=medium + + * Upload to unstable + + -- Matthew Vernon Fri, 04 Dec 2020 09:52:04 +0000 + +pcre2 (10.35-1) experimental; urgency=medium + + * New upstream version + * Bump standards-version to 4.5.1 + + -- Matthew Vernon Fri, 27 Nov 2020 09:25:08 +0000 + +pcre2 (10.34-7) unstable; urgency=medium + + * Upstream patch to fix segfault in rspamd (Closes: #946221) + + -- Matthew Vernon Sat, 07 Dec 2019 17:06:59 +0000 + +pcre2 (10.34-6) unstable; urgency=high + + * Replace: and Conflict: the previous libpcre2-posix0 package (which + erroneously had the soname 2 library in) (Closes: #946279, #946290, #946311) + * Can now make a source-only upload now libpcre2-posix2 has made it + through NEW. We need that so we can migrate to testing (Closes: #946275) + + -- Matthew Vernon Sat, 07 Dec 2019 14:34:25 +0000 + +pcre2 (10.34-5) unstable; urgency=medium + + * Sacrifice an integer so I can do a binary upload for the new + libpcre2-posix package name :-( + + -- Matthew Vernon Tue, 03 Dec 2019 21:14:29 +0000 + +pcre2 (10.34-4) unstable; urgency=high + + * Add symbols files (Closes: #945973) + * Update libpcre2-posix name to match soname + + -- Matthew Vernon Tue, 03 Dec 2019 19:20:54 +0000 + +pcre2 (10.34-3) unstable; urgency=medium + + * Remove -dbg package from debian/control as well + + -- Matthew Vernon Mon, 02 Dec 2019 11:58:33 +0000 + +pcre2 (10.34-2) unstable; urgency=high + + * Try an upstream patch to fix an ARM bug (apropos 945972) + * Remove -dbg in favour of -dbgsyms, thanks to Michael Biebl + for the patch (Closes: #891624) + + -- Matthew Vernon Mon, 02 Dec 2019 11:22:32 +0000 + +pcre2 (10.34-1) unstable; urgency=medium + + * New upstream release + + -- Matthew Vernon Thu, 28 Nov 2019 16:28:31 +0000 + +pcre2 (10.32-5) unstable; urgency=high + + * Patch from Guillem Jover to only use SSE2 + instructions on those i386 CPUs that support them (Closes: #925360) + + -- Matthew Vernon Mon, 25 Mar 2019 19:56:19 +0000 + +pcre2 (10.32-4) unstable; urgency=medium + + * Take patch from Jeremy Bicha to build with + --disable-pcre2grep-callout: A grep tool should not be expected to + execute commands (Closes: #920273) (LP: #1636666) + + -- Matthew Vernon Thu, 24 Jan 2019 09:20:51 +0000 + +pcre2 (10.32-3) unstable; urgency=medium + + * Sacrifice an integer to dgit (previous upload didn't work) + + -- Matthew Vernon Sun, 28 Oct 2018 14:19:04 +0000 + +pcre2 (10.32-2) unstable; urgency=medium + + * Take Ondřej Nový's patch to remove redundant Priority field in -dbg + package + + -- Matthew Vernon Fri, 26 Oct 2018 20:01:53 +0100 + +pcre2 (10.32-1) unstable; urgency=medium + + * New upstream release + + -- Matthew Vernon Fri, 26 Oct 2018 19:27:13 +0100 + +pcre2 (10.31-3) unstable; urgency=medium + + * Disable JIT on mips* (apropos #892488) + + -- Matthew Vernon Sat, 10 Mar 2018 00:31:33 +0000 + +pcre2 (10.31-2) unstable; urgency=low + + * Point to salsa repo in vcs* fields + * priority extra -> optional + * Add homepage link in debian/control + * Update to newer standards-version + + -- Matthew Vernon Sat, 24 Feb 2018 14:57:26 +0000 + +pcre2 (10.31-1) unstable; urgency=medium + + * New upstream version (Closes: #883224) + + -- Matthew Vernon Sat, 24 Feb 2018 12:13:02 +0000 + +pcre2 (10.22-6) unstable; urgency=medium + + [ Cyril Brulebois ] + * Add a libpcre2-8-0-udeb, needed by vte2.91 (Closes: #887674) + * Enable parallel building. + + -- Matthew Vernon Sat, 03 Feb 2018 18:44:08 +0000 + +pcre2 (10.22-5) unstable; urgency=medium + + * Add Vcs-{Git,Browser} fields to debian/control + + -- Matthew Vernon Fri, 01 Dec 2017 17:35:06 +0000 + +pcre2 (10.22-4) unstable; urgency=low + + * Add README.source explaining packaging workflow (Closes: #862425) + + -- Matthew Vernon Thu, 30 Nov 2017 14:17:39 +0000 + +pcre2 (10.22-3) unstable; urgency=medium + + * CVE-2017-7186: invalid Unicode property lookup may cause denial of + service (Closes: #858233) + + -- Matthew Vernon Tue, 21 Mar 2017 22:33:58 +0000 + +pcre2 (10.22-2) unstable; urgency=low + + * re-upload with source :-( + + -- Matthew Vernon Tue, 02 Aug 2016 19:27:58 +0100 + +pcre2 (10.22-1) unstable; urgency=low + + * New upstream release + + -- Matthew Vernon Tue, 02 Aug 2016 18:59:19 +0100 + +pcre2 (10.21-1) unstable; urgency=low + + * New upstream version + * Upstream patch to fix workspace overflow for (*ACCEPT) with deeply + nested parentheses (Closes: #815920) + + -- Matthew Vernon Sat, 27 Feb 2016 15:21:34 +0000 + +pcre2 (10.20-3) unstable; urgency=low + + * Enable JIT on ppc64 & ppc64el (Closes: #806388) + + -- Matthew Vernon Fri, 27 Nov 2015 08:16:38 +0000 + +pcre2 (10.20-2) unstable; urgency=low + + * remove unnecessary -L settings (Closes: #805941) + * Improve makefile syntax, and add JIT on arm64 + + -- Matthew Vernon Tue, 24 Nov 2015 20:39:15 +0000 + +pcre2 (10.20-1) unstable; urgency=low + + * Initial debian version (Closes: #805728) + + -- Matthew Vernon Sun, 22 Nov 2015 15:58:38 +0000 + diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..c516583 --- /dev/null +++ b/debian/control @@ -0,0 +1,121 @@ +Source: pcre2 +Section: libs +Priority: optional +Maintainer: Matthew Vernon +Standards-Version: 4.5.1 +Build-Depends: debhelper-compat (=13), dpkg-dev (>= 1.16.1~) +Vcs-Git: https://salsa.debian.org/debian/pcre2.git +Vcs-Browser: https://salsa.debian.org/debian/pcre2 +Homepage: https://github.com/PCRE2Project/pcre2 + +Package: libpcre2-8-0 +Section: libs +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Description: New Perl Compatible Regular Expression Library- 8 bit runtime files + This is PCRE2, the new implementation of PCRE, a library of functions + to support regular expressions whose syntax and semantics are as + close as possible to those of the Perl 5 language. New projects + should use this library in preference to the older library, + confusingly called pcre3 in Debian. + . + This package contains the 8 bit runtime library, which operates on + ASCII and UTF-8 input. + +Package: libpcre2-8-0-udeb +Package-Type: udeb +Build-Profiles: +Section: debian-installer +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: New Perl Compatible Regular Expression Library- 8 bit runtime files (udeb) + This package contains the 8 bit runtime library, for the Debian Installer. + +Package: libpcre2-16-0 +Section: libs +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Description: New Perl Compatible Regular Expression Library - 16 bit runtime files + This is PCRE2, the new implementation of PCRE, a library of functions + to support regular expressions whose syntax and semantics are as + close as possible to those of the Perl 5 language. New projects + should use this library in preference to the older library, + confusingly called pcre3 in Debian. + . + This package contains the 16 bit runtime library, which operates on + UTF-16 input. + +Package: libpcre2-32-0 +Section: libs +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Description: New Perl Compatible Regular Expression Library - 32 bit runtime files + This is PCRE2, the new implementation of PCRE, a library of functions + to support regular expressions whose syntax and semantics are as + close as possible to those of the Perl 5 language. New projects + should use this library in preference to the older library, + confusingly called pcre3 in Debian. + . + This package contains the 32 bit runtime library, which operates on + UTF-32 input. + +Package: libpcre2-posix3 +Section: libs +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Replaces: libpcre2-posix0 +Conflicts: libpcre2-posix0 +Description: New Perl Compatible Regular Expression Library - posix-compatible runtime files + This is PCRE2, the new implementation of PCRE, a library of functions + to support regular expressions whose syntax and semantics are as + close as possible to those of the Perl 5 language. New projects + should use this library in preference to the older library, + confusingly called pcre3 in Debian. + . + This package contains the runtime library for the posix-compatible API. + +Package: libpcre2-dev +Section: libdevel +Architecture: any +Multi-Arch: same +Conflicts: libpcre3-dev (<<2:8.35-8) +Depends: libc-dev, libpcre2-8-0 (= ${binary:Version}), libpcre2-16-0 (= ${binary:Version}), libpcre2-32-0 (= ${binary:Version}), libpcre2-posix3 (= ${binary:Version}), ${misc:Depends} +Description: New Perl Compatible Regular Expression Library - development files + This is PCRE2, the new implementation of PCRE, a library of functions + to support regular expressions whose syntax and semantics are as + close as possible to those of the Perl 5 language. New projects + should use this library in preference to the older library, + confusingly called pcre3 in Debian. + . + Unlike the previous version of PCRE, there is no C++ library included + with PCRE2. Users who wish to avoid porting their C++ code to use the + PCRE2 C API might want to consider the libre2-dev package in Debian + which attempts to provide a similar C++ API to that provided by + libpcrecpp in previous versions of PCRE. + . + This package contains the development files, including headers, + static libraries, and documentation. + +Package: pcre2-utils +Section: utils +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: New Perl Compatible Regular Expression Library - utilities + This is PCRE2, the new implementation of PCRE, a library of functions + to support regular expressions whose syntax and semantics are as + close as possible to those of the Perl 5 language. New projects + should use this library in preference to the older library, + confusingly called pcre3 in Debian. + . + This package contains the utilities pcre2grep (like grep with PCRE) + and pcre2test (a test program for the library, but also useful for + experimenting with regular expressions). Both programs are also + useful examples of programming with libpcre2. diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 0000000..66e9582 --- /dev/null +++ b/debian/copyright @@ -0,0 +1,122 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Comment: This package was debianized by Matthew Vernon +Source: https://github.com/PCRE2Project/pcre2/releases + +Files: * +Copyright: 1997-2022 University of Cambridge. +License: BSD-3-clause-Cambridge with BINARY LIBRARY-LIKE PACKAGES exception + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + . + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + . + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + . + * Neither the name of the University of Cambridge nor the names of any + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + . + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + . + . + EXEMPTION FOR BINARY LIBRARY-LIKE PACKAGES + ------------------------------------------ + . + The second condition in the BSD licence (covering binary redistributions) does + not apply all the way down a chain of software. If binary package A includes + PCRE2, it must respect the condition, but if package B is software that + includes package A, the condition is not imposed on package B unless it uses + PCRE2 independently. + +Files: cmake/Find* +Copyright: KDE Community +License: BSD-3-clause + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + . + 1. Redistributions of source code must retain the copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + . + THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Files: install-sh +Copyright: (C) 1994 X Consortium +License: X11 + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to + deal in the Software without restriction, including without limitation the + rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + . + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- + TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + . + Except as contained in this notice, the name of the X Consortium shall not + be used in advertising or otherwise to promote the sale, use or other deal- + ings in this Software without prior written authorization from the X Consor- + tium. +Comment: FSF changes to this file are in the public domain. + +Files: deps/sljit/* +Copyright: Zoltan Herczeg (hzmester@freemail.hu). All rights reserved. +License: BSD-2-clause + Redistribution and use in source and binary forms, with or without modification, are + permitted provided that the following conditions are met: + . + 1. Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. + . + 2. Redistributions in binary form must reproduce the above copyright notice, this list + of conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. + . + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) AND CONTRIBUTORS ``AS IS'' AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + SHALL THE COPYRIGHT HOLDER(S) OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED + TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Files: testdata/* +Copyright: None (public-domain) +License: public-domain + The data in the testdata directory is not copyrighted and is in the public domain. diff --git a/debian/gbp.conf b/debian/gbp.conf new file mode 100644 index 0000000..ffb5934 --- /dev/null +++ b/debian/gbp.conf @@ -0,0 +1,8 @@ +[DEFAULT] +upstream-branch = upstream +debian-branch = master +upstream-tag = %(version)s + +sign-tags = False +pristine-tar = False +pristine-tar-commit = False diff --git a/debian/libpcre2-16-0.install b/debian/libpcre2-16-0.install new file mode 100644 index 0000000..8582b10 --- /dev/null +++ b/debian/libpcre2-16-0.install @@ -0,0 +1 @@ +debian/tmp/usr/lib/*/libpcre2-16.so.* diff --git a/debian/libpcre2-16-0.symbols b/debian/libpcre2-16-0.symbols new file mode 100644 index 0000000..ca99e69 --- /dev/null +++ b/debian/libpcre2-16-0.symbols @@ -0,0 +1,3 @@ +libpcre2-16.so.0 libpcre2-16-0 #MINVER# + (symver)PCRE2_10.47 10.47 + (symver)PCRE2_10.48 10.48 diff --git a/debian/libpcre2-32-0.install b/debian/libpcre2-32-0.install new file mode 100644 index 0000000..f3dea05 --- /dev/null +++ b/debian/libpcre2-32-0.install @@ -0,0 +1 @@ +debian/tmp/usr/lib/*/libpcre2-32.so.* diff --git a/debian/libpcre2-32-0.symbols b/debian/libpcre2-32-0.symbols new file mode 100644 index 0000000..34a7f42 --- /dev/null +++ b/debian/libpcre2-32-0.symbols @@ -0,0 +1,3 @@ +libpcre2-32.so.0 libpcre2-32-0 #MINVER# + (symver)PCRE2_10.47 10.47 + (symver)PCRE2_10.48 10.48 diff --git a/debian/libpcre2-8-0-udeb.install b/debian/libpcre2-8-0-udeb.install new file mode 100644 index 0000000..1a38dd6 --- /dev/null +++ b/debian/libpcre2-8-0-udeb.install @@ -0,0 +1 @@ +debian/tmp/usr/lib/*/libpcre2-8.so.* diff --git a/debian/libpcre2-8-0.install b/debian/libpcre2-8-0.install new file mode 100644 index 0000000..1a38dd6 --- /dev/null +++ b/debian/libpcre2-8-0.install @@ -0,0 +1 @@ +debian/tmp/usr/lib/*/libpcre2-8.so.* diff --git a/debian/libpcre2-8-0.symbols b/debian/libpcre2-8-0.symbols new file mode 100644 index 0000000..cf5818a --- /dev/null +++ b/debian/libpcre2-8-0.symbols @@ -0,0 +1,3 @@ +libpcre2-8.so.0 libpcre2-8-0 #MINVER# + (symver)PCRE2_10.47 10.47 + (symver)PCRE2_10.48 10.48 diff --git a/debian/libpcre2-dev.install b/debian/libpcre2-dev.install new file mode 100644 index 0000000..52ce644 --- /dev/null +++ b/debian/libpcre2-dev.install @@ -0,0 +1,6 @@ +debian/tmp/usr/include/* +debian/tmp/usr/lib/*/lib*.a +debian/tmp/usr/lib/*/lib*.so +debian/tmp/usr/lib/*/pkgconfig/* +debian/tmp/usr/bin/*-config +debian/tmp/usr/share/man/man3/* diff --git a/debian/libpcre2-dev.lintian-overrides b/debian/libpcre2-dev.lintian-overrides new file mode 100644 index 0000000..80ec156 --- /dev/null +++ b/debian/libpcre2-dev.lintian-overrides @@ -0,0 +1,2 @@ +# The multiarch-path never appears in pcre2-config output +libpcre2-dev binary: old-style-config-script-multiarch-path diff --git a/debian/libpcre2-dev.manpages b/debian/libpcre2-dev.manpages new file mode 100644 index 0000000..c4b82bb --- /dev/null +++ b/debian/libpcre2-dev.manpages @@ -0,0 +1 @@ +debian/tmp/usr/share/man/man1/pcre2-config.1 diff --git a/debian/libpcre2-posix3.install b/debian/libpcre2-posix3.install new file mode 100644 index 0000000..2669a04 --- /dev/null +++ b/debian/libpcre2-posix3.install @@ -0,0 +1 @@ +debian/tmp/usr/lib/*/libpcre2-posix.so.* diff --git a/debian/libpcre2-posix3.symbols b/debian/libpcre2-posix3.symbols new file mode 100644 index 0000000..df263d6 --- /dev/null +++ b/debian/libpcre2-posix3.symbols @@ -0,0 +1,3 @@ +libpcre2-posix.so.3 libpcre2-posix3 #MINVER# + (symver)PCRE2_10.47 10.47 + (symver)PCRE2_10.48 10.48 diff --git a/debian/not-installed b/debian/not-installed new file mode 100644 index 0000000..a87984c --- /dev/null +++ b/debian/not-installed @@ -0,0 +1,2 @@ +/usr/lib/*/libpcre2*.la +/usr/share/doc/pcre2/* diff --git a/debian/pcre2-utils.install b/debian/pcre2-utils.install new file mode 100644 index 0000000..ded3f24 --- /dev/null +++ b/debian/pcre2-utils.install @@ -0,0 +1,4 @@ +debian/tmp/usr/bin/pcre2test +debian/tmp/usr/bin/pcre2grep +debian/tmp/usr/share/man/man1/pcre2test.1 +debian/tmp/usr/share/man/man1/pcre2grep.1 diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..7a01f62 --- /dev/null +++ b/debian/rules @@ -0,0 +1,32 @@ +#!/usr/bin/make -f +# See debhelper(7) +# output every command that modifies files on the build system. +#DH_VERBOSE = 1 + +# see dpkg-buildflags(1) +DPKG_EXPORT_BUILDFLAGS = 1 +include /usr/share/dpkg/default.mk +# prefix names of functions in libpcreposix with PCRE2 to avoid clash with +# ones in libc. +export DEB_CFLAGS_MAINT_APPEND = -Dregcomp=PCRE2regcomp -Dregexec=PCRE2regexec -Dregerror=PCRE2regerror -Dregfree=PCRE2regfree + + +deb_maint_conf_args = --enable-pcre2-16 --enable-pcre2-32 --disable-pcre2grep-callout +#enable JIT only on architectures that support it (see pcre2jit.3) +ifneq ($(filter amd64 armhf arm64 i386 loong64 mips mipsel mips64el powerpc ppc64 ppc64el riscv64 s390x, $(DEB_HOST_ARCH)),) +deb_maint_conf_args +=--enable-jit +else +deb_maint_conf_args +=--disable-jit +endif + +%: + dh $@ + +override_dh_auto_configure: + dh_auto_configure -- $(deb_maint_conf_args) + +override_dh_makeshlibs: + dh_makeshlibs -V --add-udeb=libpcre2-8-0-udeb + +override_dh_strip: + dh_strip --dbgsym-migration='libpcre2-dbg (<< 10.34-2~)' diff --git a/debian/source/format b/debian/source/format new file mode 100644 index 0000000..d3827e7 --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +1.0 diff --git a/debian/watch b/debian/watch new file mode 100644 index 0000000..0883e43 --- /dev/null +++ b/debian/watch @@ -0,0 +1,2 @@ +version=4 + https://github.com/PCRE2Project/pcre2/releases .*/?(\d{2}\.\d{2})\.tar\.gz diff --git a/pcre2-config.in b/pcre2-config.in index f85e12f..9ec43ce 100644 --- a/pcre2-config.in +++ b/pcre2-config.in @@ -28,29 +28,8 @@ if test $# -eq 0; then fi libR= -case `uname -s` in - *SunOS*) - libR=" -R@libdir@" - ;; - *BSD*) - libR=" -Wl,-R@libdir@" - ;; -esac libS= -case "@libdir@" in - # system locations on Linux, no -L needed - /usr/lib|/usr/lib32|/usr/lib64|/usr/lib/*-gnu*) - ;; - /lib|/lib32|/lib64|/lib/*-gnu*) - ;; - # system locations on AIX and Solaris, no -L needed - /usr/lib/64|/usr/lib/amd*|/usr/lib/sparc*|/usr/lib/ppc*) - ;; - *) - libS="-L@libdir@" - ;; -esac while test $# -gt 0; do case "$1" in diff --git a/src/pcre2_jit_compile.c b/src/pcre2_jit_compile.c index 105a1dd..c5da883 100644 --- a/src/pcre2_jit_compile.c +++ b/src/pcre2_jit_compile.c @@ -99,7 +99,7 @@ Fast, but limited size. */ /* Growth rate for stack allocated by the OS. Should be the multiply of page size. */ -#define STACK_GROWTH_RATE 8192 +#define STACK_GROWTH_RATE (sljit_sw)8192 /* Enable to check that the allocation could destroy temporaries. */ #if defined SLJIT_DEBUG && SLJIT_DEBUG @@ -473,6 +473,8 @@ typedef struct compiler_common { BOOL local_quit_available; /* Currently in a positive assertion. */ BOOL in_positive_assertion; + /* More than STACK_GROWTH_RATE / 2 stack memory is allocated. */ + BOOL large_stack_allocation; /* Newline control. */ int nltype; sljit_u32 nlmax; @@ -3528,6 +3530,8 @@ static SLJIT_INLINE void allocate_stack(compiler_common *common, sljit_s32 size) DEFINE_COMPILER; SLJIT_ASSERT(size > 0); +if (size > (STACK_GROWTH_RATE / (SSIZE_OF(sw) * 2))) + common->large_stack_allocation = TRUE; OP2(SLJIT_SUB, STACK_TOP, 0, STACK_TOP, 0, SLJIT_IMM, size * SSIZE_OF(sw)); #ifdef DESTROY_REGISTERS OP1(SLJIT_MOV, TMP1, 0, SLJIT_IMM, 12345); @@ -14085,7 +14089,20 @@ SLJIT_ASSERT(TMP1 == SLJIT_R0 && STR_PTR == SLJIT_R1); OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), LOCAL1, STR_PTR, 0); OP1(SLJIT_MOV, SLJIT_R0, 0, ARGUMENTS, 0); -OP2(SLJIT_SUB, SLJIT_R1, 0, STACK_LIMIT, 0, SLJIT_IMM, STACK_GROWTH_RATE); +if (common->large_stack_allocation) + { + SLJIT_COMPILE_ASSERT((STACK_GROWTH_RATE & (STACK_GROWTH_RATE - 1)) == 0, stack_growth_must_be_power_of_2); + // Negative difference. The positive difference would also use the same amount + // of operations, but the last subtraction emits several instructions on x86. + OP2(SLJIT_SUB, SLJIT_R1, 0, STACK_TOP, 0, STACK_LIMIT, 0); + // Minimum extra space after allocation. + OP2(SLJIT_SUB, SLJIT_R1, 0, SLJIT_R1, 0, SLJIT_IMM, (STACK_GROWTH_RATE / 2)); + // Rounds down negative numbers. + OP2(SLJIT_AND, SLJIT_R1, 0, SLJIT_R1, 0, SLJIT_IMM, ~(STACK_GROWTH_RATE - 1)); + OP2(SLJIT_ADD, SLJIT_R1, 0, SLJIT_R1, 0, STACK_LIMIT, 0); + } +else + OP2(SLJIT_SUB, SLJIT_R1, 0, STACK_LIMIT, 0, SLJIT_IMM, STACK_GROWTH_RATE); OP1(SLJIT_MOV, SLJIT_R0, 0, SLJIT_MEM1(SLJIT_R0), SLJIT_OFFSETOF(jit_arguments, stack)); OP1(SLJIT_MOV, STACK_LIMIT, 0, TMP2, 0); -- 2.39.5